public with sharing class SelectListComponentTestWrapperController extends PageControllerBase{
    public Selectoption[] ListComponent1Data{get; private set;}
    public Selectoption[] ListComponent2Data{get; private set;}
    
    public SelectListComponentController ListComponent1Controller {
        get{
            return GetListController('SelectList1');
        }
        set;
    }
    
    public SelectListComponentController ListComponent2Controller {
        get{
            return GetListController('SelectList2');
        }
        set;
    }
    
    private SelectListComponentController GetListController(string ListName){
    	SelectListComponentController component = null;
    	
        if(getComponentControllerMap() != null){
            component = (SelectListComponentController)getComponentControllerMap().get(ListName);
        }
        
		return component; 
    }
    
    public SelectListComponentTestWrapperController(){
        list<Selectoption> BaseOptions1 = new list<Selectoption>();
        list<Selectoption> BaseOptions2 = new list<Selectoption>();
                
        BaseOptions1.add(new Selectoption('1', 'Option 1'));
        BaseOptions1.add(new Selectoption('2', 'Option 2'));
        BaseOptions1.add(new Selectoption('3', 'Option 3'));
        BaseOptions1.add(new Selectoption('4', 'Option 4'));
        BaseOptions1.add(new Selectoption('5', 'Option 5'));
        BaseOptions1.add(new Selectoption('6', 'Option 6'));
            
        ListComponent1Data = BaseOptions1;
        
        BaseOptions2 = BaseOptions1.clone();
        BaseOptions2.add(new Selectoption('7', 'Option 7'));
        BaseOptions2.add(new Selectoption('8', 'Option 8'));
        BaseOptions2.add(new Selectoption('9', 'Option 9'));
        ListComponent2Data = BaseOptions2;
    }
    
    public Pagereference Reset(){
        ListComponent1Controller.ResetList();
        ListComponent2Controller.ResetList();
        
        return null;
    }

}